package com.bestcem.xm.member.service;

import com.bestcem.xm.common.core.domain.web.ServiceResult;
import com.bestcem.xm.label.grpc.service.param.label.ListOrgLabelValuesParam;
import com.bestcem.xm.label.service.dto.label.LabelDTO;
import com.bestcem.xm.member.grpc.service.param.openplatform.*;
import com.bestcem.xm.member.service.dto.MemberDTO;
import com.bestcem.xm.member.service.dto.PageDTO;

import java.util.Map;

/**
 * 开放平台 service
 *
 * @author dc.wang <dc.wang@idiaoyan.com>
 * @version V1.0
 * @date 2021/12/7
 */
public interface MemberOpenPlatformService {
    /**
     * 查询联系人
     * @param param 查询参数
     * @return 联系人列表
     */
    ServiceResult<PageDTO<MemberDTO>> listMembers(ListOpenPlatformMembersParam param);

    /**
     * 批量创建、更新联系人
     * @param param 请求参数
     * @return 创建、更新状态
     */
    ServiceResult<Map<UpsertMemberParam, String>> batchUpsertMembers(BatchUpsertMembersParam param);

    /**
     * 查询企业标签值信息列表
     * @param param 请求参数
     * @return 标签值列表
     */
    ServiceResult<PageDTO<LabelDTO>> listLabelValues(ListOrgLabelValuesParam param);

    /**
     * 查询企业标签值信息列表
     * @param param 请求参数
     * @return 标签集合&操作结果
     */
    ServiceResult<Map<UpsertLabelParam, String>> batchUpsertLabels(BatchUpsertLabelsParam param);
}
